
#ifndef CALCULATOR_NUMBER_H
#define CALCULATOR_NUMBER_H

#include <iomanip>
#include <iostream>
#include <string>
#include <sstream>
using namespace std;


class CalculatorNumber
{
  public:
    CalculatorNumber();  
    void operator=(CalculatorNumber &otherNumber);
    
    void setDouble(double doubleData);
    void setLongLong(long long longLongData);
    
    double getDoubleData();
    long long getLongLongData();
    
    void clearData();
    
    string getData();
    void setToDouble(bool x);
    bool isDouble();
    

    void add(CalculatorNumber *num1, CalculatorNumber *num2);
    void sub(CalculatorNumber *num1, CalculatorNumber *num2);
    void mul(CalculatorNumber *num1, CalculatorNumber *num2);
    void div(CalculatorNumber *num1, CalculatorNumber *num2);


  private:
/*Long longs were chosen because they hold 64 bits instead of 32.*/
    long long longLongData_;
    double doubleData_;
    bool isDouble_;
};
  
#endif

